package main

import (
	"fmt"

	"github.com/sony/sonyflake"
)

func main() {

	// 初始化Sonyflake设置，你可以自定义机器ID范围，但确保每个实例有唯一的机器ID
	settings := sonyflake.Settings{
		MachineID: func() (uint16, error) {
			// 这里返回你的机器ID，确保它是唯一的。通常，你可能需要将此与某种服务发现机制结合使用。
			// 在这个例子中，我们简单返回一个固定的机器ID。
			return 1, nil
		},
	}

	// 创建Sonyflake实例
	sf := sonyflake.NewSonyflake(settings)

	// 使用Sonyflake实例生成ID
	id, err := sf.NextID()
	if err != nil {
		panic(err)
	}

	// 打印生成的ID
	fmt.Println("Generated ID:", id)
}
